package com.rskj.cashbook.vo;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

@EqualsAndHashCode(callSuper = true)
@Data
@Accessors(chain = true)
public class SqlTxtMonitorLog extends BaseEntity {
    // SQL 语句文本
    private String sqlText;

    // SQL 参数（以 JSON 格式存储）
    private String sqlParams;

    // 执行时间
    private LocalDateTime executionTime;

    // 执行持续时间（单位：毫秒）
    private Long executionDuration;

    // 查询结果行数（或影响的行数）
    private Integer resultCount;

    // 执行状态：成功或失败
    private String status;

    // 错误信息
    private String errorMessage;

    // 执行 SQL 的方法名
    private String methodName;

    // 执行 SQL 的类名
    private String className;

    // 执行 SQL 的用户 ID
    private String userId;

    // 执行 SQL 的 IP 地址
    private String ipAddress;

    // 执行 SQL 的主机名
    private String hostName;

    // SQL 类型：SELECT、INSERT、UPDATE、DELETE
    private String queryType;

    // 事务 ID（如果 SQL 在事务中执行）
    private String transactionId;

    // 调用栈信息（用于调试）
    private String callStack;

    // 应用名称（记录是哪一个应用调用的 SQL）
    private String applicationName;

    // 数据库名称
    private String databaseName;

    // 数据库服务器 IP 地址
    private String hostIp;
}
